import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path, { join } from 'path'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'

// https://vitejs.dev/config/
export default ({ mode }: { mode: string }) => {
	const VITE_ENV_CONFIG = loadEnv(mode, process.cwd())
	const VITE_BASE_API = VITE_ENV_CONFIG.VITE_BASE_API
	const VITE_SLOTS_API = VITE_ENV_CONFIG.VITE_SLOTS_API
	const VITE_GAME_API = VITE_ENV_CONFIG.VITE_GAME_API
	const VITE_SERVER_URL = VITE_ENV_CONFIG.VITE_SERVER_URL
	const VITE_GAME_SERVER_URL = VITE_ENV_CONFIG.VITE_GAME_SERVER_URL

	return defineConfig({
		plugins: [
			vue(),
			createSvgIconsPlugin({
				// 指定需要缓存的图标文件夹
				iconDirs: [path.resolve(process.cwd(), 'src/assets/icon')],
				// 指定symbolId格式
				symbolId: 'icon-[name]'
			})
		],
		// 软链接
		resolve: {
			alias: {
				'@': join(__dirname, '/src'),
				'#': path.join(__dirname, 'types')
			},
			dedupe: ['vue']
			// extensions: ['.vue', '.tsx', '.ts', '.jsx', '.js', '.json', '.less', '.css']
		},
		// 代理
		server: {
			proxy: {
				// 代理所有 /api 的请求，该求情将被代理到 target 中
				[VITE_BASE_API]: {
					// 代理请求之后的请求地址
					target: VITE_SERVER_URL,
					// 跨域
					changeOrigin: true
				},
				[VITE_SLOTS_API]: {
					// 代理请求之后的请求地址
					target: VITE_SERVER_URL,
					// 跨域
					changeOrigin: true
				}
				// [VITE_GAME_API]: {
				// 	// 代理请求之后的请求地址
				// 	target: VITE_GAME_SERVER_URL,
				// 	// 跨域
				// 	changeOrigin: true
				// }
			}
		},
		build: {
			assetsDir: './pc-assets'
		}
	})
}
